A semantic graph is a network that represents semantic relations between nodes. In some cases, the semantic graph can also be referred to as a semantic network. The semantic graph can be used as a form of knowledge representation. For example, the semantic graph can be used when knowledge that can be represented as a set of concepts that are related to one another. In some implementations, the semantic graph can include vertices and edges. The vertices, e.g., the nodes of the semantic graph, can represent concepts, and the edges can represent associations of the concepts. A semantic graph can be directed or undirected.